package com.zzw.bean;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 赵志伟
 * @version 1.0
 */
@SuppressWarnings({"all"})
public class Msg {

    private int code;//状态码 (200成功 400失败)

    private String msg;//返回数据说明

    private Map<String, Object> extend = new HashMap<>();//返回数据

    public static Msg success() {
        Msg msg = new Msg();
        msg.setCode(200);
        msg.setMsg("返回成功");
        return msg;
    }

    public static Msg success(String successMsg) {
        Msg msg = new Msg();
        msg.setCode(200);
        msg.setMsg(successMsg);
        return msg;
    }

    public static Msg success(Object data) {
        Msg msg = new Msg();
        msg.setCode(200);
        msg.setMsg("返回成功");
        msg.add("data", data);
        return msg;
    }

    public static Msg success(Boolean is) {
        return is ? Msg.success(): Msg.fail();
    }

    public static Msg fail() {
        Msg msg = new Msg();
        msg.setCode(400);
        msg.setMsg("处理失败");
        return msg;
    }

    public static Msg fail(String failMsg) {
        Msg msg = new Msg();
        msg.setCode(400);
        msg.setMsg(failMsg);
        return msg;
    }

    public Msg add(String key, Object value) {
        extend.put(key, value);
        return this;
    }

    public int getCode() {
        return code;
    }

    public void setExtend(Map<String, Object> extend) {
        this.extend = extend;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public Msg setMsg(String msg) {
        this.msg = msg;
        return this;
    }

    public Map<String, Object> getExtend() {
        return extend;
    }

    @Override
    public String toString() {
        return "Msg{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", extend=" + extend +
                '}';
    }
}
